home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / dialer.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-03-31  |  18.6 KB  |  519 lines

  1. 5  KEY OFF
  2. 10  BORDER = 15
  3. 11  BACKGROUND = 0
  4. 12  TEXT = 5
  5. 13  HIGHLIGHT = 9
  6. 14  O = 1
  7. 20  DIM C$(15),A$(20)
  8. 21  BAR$=CHR$(219)+CHR$(219)+CHR$(219)+CHR$(219)+CHR$(219)
  9. 30  C$(0)="Black": C$(8)="Gray"
  10. 31  C$(1)="Blue": C$(9)="Light Blue"
  11. 32  C$(2)="Green":C$(10)="Light Green"
  12. 33  C$(3)="Cyan":C$(11)="Light Cyan"
  13. 34  C$(4)="Red":C$(12)="Light Red"
  14. 35  C$(5)="Magenta":C$(13)="Light Magenta"
  15. 36  C$(6)="Brown":C$(14)="Yellow"
  16. 37  C$(7)="White":C$(15)="Bright White"
  17. 50  M1 = 1 : M2 =2 : M3= 2 : M4=1
  18. 60  D1$="2373815,,,,,000000,00000"
  19. 61  D2$="701"
  20. 62  D3$="2370000"
  21. 63  D4$="2379999"
  22. 64  D5$="0"
  23. 65  D6$="20"
  24. 66  D5 = 1
  25. 70  CU$="1234567"
  26. 100  REM read color data
  27. 105  ON ERROR GOTO 300
  28. 109  LIN = 1
  29. 110  OPEN "i",#1,"color.dat"
  30. 120  INPUT #1,C1,C2,C3,C4
  31. 140  BORDER = C1: TEXT = C2 : BACKGROUND = C3 : HIGHLIGHT = C4
  32. 145  CLOSE #1 : LIN = 2
  33. 150  OPEN "i",#1,"modem.dat"
  34. 160  INPUT #1,M1,M2,M3,M4
  35. 170  CLOSE #1
  36. 175  LIN = 3
  37. 180  OPEN "i",#1,"dialing.dat"
  38. 190  INPUT #1,D1$,D2$,D3$,D4$,D5$,D6$,D5
  39. 200  CLOSE #1
  40. 210  LIN = 4
  41. 215  OPEN "i",#1,"alarm.dat"
  42. 220  INPUT#1,START$,S1$
  43. 230  CLOSE #1
  44. 250  ON ERROR GOTO 0
  45. 299  GOTO 800
  46. 300  REM IF ERR = 53 THEN GOTO 301 ELSE GOTO 350
  47. 301  IF LIN = 1 THEN RESUME 145
  48. 302  IF LIN = 2 THEN RESUME 175
  49. 303  IF LIN = 3 THEN RESUME 200
  50. 304  IF LIN = 4 THEN RESUME 230
  51. 350  PRINT ERR,ERRLINE
  52. 388  STOP
  53. 800  TROFF
  54. 848  SCREEN 0,0,0
  55. 849  GOTO 900
  56. 850  LOCATE 5,LEFT+3:PRINT DATE$: LOCATE 6,LEFT+4: PRINT TIME$ : RETURN
  57. 900  COLOR TEXT,BACKGROUND,BACKGROUND : CLS
  58. 901  GOSUB 1000
  59. 909  A$(1)="Dial":A$(2)="Set Colors":A$(3)="Modem Parameters":A$(4)="Dialing Parameters":A$(5)="Set Time":A$(6)="Exit"
  60. 910  IF O<1 THEN O=5
  61. 911  IF O>6 THEN O=1
  62. 912  COLOR TEXT,BACKGROUND: FOR I =1 TO 6: LOCATE 3+I,14-LEN(A$(I))/2: PRINT A$(I): NEXT I
  63. 913  COLOR TEXT,HIGHLIGHT : LOCATE 3+O,14-LEN(A$(O))/2 :PRINT A$(O)
  64. 914  K$ = INKEY$ : K = 0 :IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  65. 915  IF K$ = "8" OR K=72 THEN O=O-1:GOTO 910
  66. 916  IF K$="2" OR K=80 THEN O=O+1:GOTO 910
  67. 917  IF K$<>CHR$(13) AND K$<>"+" THEN 950
  68. 919  COLOR TEXT,BACKGROUNG,BACKGROUND
  69. 921  IF O = 1 THEN 5000
  70. 922  IF O = 2 THEN 2000
  71. 923  IF O = 3 THEN GOTO 3000
  72. 924  IF O = 4 THEN 4000
  73. 925  IF O = 5 THEN 7000
  74. 926  IF O = 6 THEN CLS : COLOR 15,0,0 : END
  75. 950  IF K$=" " THEN A$="com"+RIGHT$(STR$(M1),1)+":" : HOOK = 1-HOOK : CLOSE : OPEN A$ AS 2 : PRINT #2,"AT M1 H";HOOK
  76. 955  IF K$<>CHR$(27) THEN 970
  77. 960  COLOR TEXT,BACKGROUND,BACKGROUND : CLS : FILES :  LOCATE 23,30 : PRINT "Press any key for menu..." :
  78. 965  IF INKEY$="" THEN 965 ELSE GOTO 900
  79. 970  '
  80. 999  GOTO 914
  81. 1000  COLOR BORDER,BACKGROUND,BACKGROUND
  82. 1001  CLS:CLOSE
  83. 1004  L$="" : FOR I = 1 TO 78 : L$ = L$ + CHR$(196) : NEXT I
  84. 1005  LOCATE 1,1 : PRINT CHR$(218) L$ CHR$(191)
  85. 1010  FOR I = 2 TO 22 : LOCATE I,1 : PRINT CHR$(179) : LOCATE I,80 : PRINT CHR$(179) : NEXT I
  86. 1015  LOCATE 23,1 : PRINT CHR$(192) L$ CHR$(217);
  87. 1029  LOCATE 12,1
  88. 1030  PRINT CHR$(195) L$ CHR$(180)
  89. 1035  LEFT = 27
  90. 1040  LOCATE 1,LEFT : PRINTCHR$(194) : FOR I = 2 TO 11 : LOCATE I,LEFT : PRINT CHR$(179) : NEXT I :LOCATE 12,LEFT: PRINTCHR$(193)
  91. 1050  COLOR TEXT
  92. 1099  RETURN
  93. 1100  REM display screen logo
  94. 1105  COLOR 15
  95. 1110  LOCATE 6,28: PRINT"   Wargames Dialer"
  96. 1199  RETURN
  97. 1800  REM display instructions in upperleft box
  98. 1809  COLOR TEXT,BACKGROUND
  99. 1810  LOCATE 3,6:PRINT "The Ultimate in"
  100. 1811  LOCATE 4,6:PRINT "Wargame dialers"
  101. 1812  LOCATE 6,3: PRINT"Move with Cursor Keys"
  102. 1813  LOCATE 7,3: PRINT"and press <Return> or +"
  103. 1814  LOCATE 8,3: PRINT"to selected option."
  104. 1815  COLOR TEXT,HIGHLIGHT : LOCATE 7,14 : PRINT "Return" : LOCATE 7,25: PRINT "+": LOCATE 6,13 : PRINT "Cursor Keys"
  105. 1820  RETURN
  106. 1825  REM display instructions for modem default
  107. 1826  COLOR TEXT,BACKGROUND
  108. 1827  LOCATE 3,6: PRINT"The Ultimate in"
  109. 1828  LOCATE 4,6: PRINT"Wargame Dialers"
  110. 1829  LOCATE 7,3: PRINT"Move with <- & ->"
  111. 1830  LOCATE 8,3: PRINT"keys and press"
  112. 1831  LOCATE 9,3: PRINT"<Return> or + "
  113. 1832  LOCATE 10,3:PRINT"to select."
  114. 1833  COLOR TEXT,HIGHLIGHT : LOCATE 7,13 : PRINT "<-" : LOCATE 7,18 : PRINT "->"
  115. 1834  LOCATE 9,4: PRINT "Return" : LOCATE 9,15 : PRINT"+"
  116. 1835  RETURN
  117. 1900  REM clear bottom box
  118. 1910  COLOR TEXT,BACKGROUND,BACKGROUND
  119. 1920  FOR I = 13 TO 22:LOCATE I,2 :PRINT"                                                                              ": NEXT I
  120. 1924  RETURN
  121. 1925  REM clear upperleft box
  122. 1930  COLOR TEXT,BACKGROUND,BACKGROUND : FOR I = 2 TO 11:LOCATE I,2:PRINT "                      " : NEXT I
  123. 1935  RETURN
  124. 1950  FOR I = 0 TO 15 : COLOR I,I : Y = 14+I+(I>7)*8: X = 35-(I>7)*18
  125. 1955  LOCATE Y,X :PRINT BAR$ : COLOR TEXT,BACKGROUND :LOCATE Y,X+7 : PRINT C$(I):NEXT I
  126. 1956  OLD=0
  127. 1960  RETURN
  128. 1975  COLOR TEXT,BACKGROUND : LOCATE 14+OLD+(OLD>7)*8,42-(OLD>7)*18 : PRINT C$(OLD)
  129. 1978  COLOR TEXT,HIGHLIGHT : LOCATE 14+O+(O>7)*8,42-(O>7)*18 : PRINT C$(O)
  130. 1979  OLD = O
  131. 1980  RETURN
  132. 2000  REM set system colors
  133. 2001  CLOSE
  134. 2010  GOSUB 1900: GOSUB 1925 : GOSUB 1800 : REM clear ul & bottom boxes & display instructions
  135. 2011   LOCATE 15,6:COLOR BORDER,BACKGROUND:PRINT BAR$
  136. 2012   LOCATE 17,6:COLOR TEXT,BACKGROUND:PRINT BAR$
  137. 2013   LOCATE 19,6:COLOR BACKGROUND,BACKGROUND:PRINT BAR$
  138. 2014   LOCATE 21,6:COLOR HIGHLIGHT,BACKGROUND:PRINT BAR$ : COLOR TEXT,BACKGROUND
  139. 2015  LOCATE 15,13 : PRINT "Outline Color"
  140. 2016  LOCATE 17,13 : PRINT "Text Color"
  141. 2017  LOCATE 19,13 : PRINT "Background Color"
  142. 2018  LOCATE 21,13 : PRINT "Highlight Color"
  143. 2019  O=BORDER : LOCATE 15,13 : COLOR TEXT,HIGHLIGHT : PRINT "Outline Color" : GOSUB 1950 : GOTO 2040
  144. 2020  REM select outline color
  145. 2021  GOSUB 1950 ' Display colorbars and names
  146. 2022  GOSUB 1975 ' Display highlighted option
  147. 2025  K$=INKEY$ : K = 0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  148. 2026  IF K$="8" OR K=72 THEN O=O-1:GOTO 2035
  149. 2027  IF K$="2" OR K=80 THEN O=O+1:GOTO 2035
  150. 2028  IF K$="4" OR K=75 THEN O=O-8:GOTO 2035
  151. 2029  IF K$="6" OR K=77 THEN O=O+8:GOTO 2035
  152. 2030  IF K$<>CHR$(13) AND K$<>"+" THEN 2025
  153. 2033  GOTO 2050 ' color selected so continue
  154. 2035  REM check for range error
  155. 2036  IF O=-1THEN O=7
  156. 2037  IF O=16THEN O=8
  157. 2038  IF O<-1THEN O=O+16
  158. 2039  IF O>16THEN O=O-16
  159. 2040  LOCATE 15,6 : COLOR O,O: PRINT BAR$ :GOTO 2022
  160. 2050  C1=O
  161. 2118  LOCATE 15,13 : COLOR TEXT,BACKGROUND : PRINT "Outline Color"
  162. 2119  O=TEXT : LOCATE 17,13 : COLOR TEXT,HIGHLIGHT : PRINT "Text Color" : GOSUB 1950 : GOTO 2140
  163. 2120  REM select outline color
  164. 2121  GOSUB 1950 ' Display colorbars and names
  165. 2122  GOSUB 1975 ' Display highlighted option
  166. 2125  K$=INKEY$ : K = 0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  167. 2126  IF K$="8" OR K=72 THEN O=O-1:GOTO 2135
  168. 2127  IF K$="2" OR K=80 THEN O=O+1:GOTO 2035
  169. 2128  IF K$="4" OR K=75 THEN O=O-8:GOTO 2135
  170. 2129  IF K$="6" OR K=77 THEN O=O+8:GOTO 2135
  171. 2130  IF K$<>CHR$(13) AND K$<>"+" THEN 2125
  172. 2133  GOTO 2150 ' color selected so continue
  173. 2135  REM check for range error
  174. 2136  IF O=-1 THEN O=7
  175. 2137  IF O=16 THEN O=8
  176. 2138  IF O<-1 THEN O=O+16
  177. 2139  IF O>16 THEN O=O-16
  178. 2140  LOCATE 17,6 : COLOR O,O: PRINT BAR$ :GOTO 2122
  179. 2150  C2=O
  180. 2218  LOCATE 17,13 : COLOR TEXT,BACKGROUND : PRINT "Text Color"
  181. 2219  O=BACKGROUND : LOCATE 19,13 : COLOR TEXT,HIGHLIGHT : PRINT "Background Color" : GOSUB 1950 : GOTO 2240
  182. 2220  REM select outline color
  183. 2221  GOSUB 1950 ' Display colorbars and names
  184. 2222  GOSUB 1975 ' Display highlighted option
  185. 2225  K$=INKEY$ : K = 0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  186. 2226  IF K$="8" OR K=72 THEN O=O-1:GOTO 2235
  187. 2227  IF K$="2" OR K=80 THEN O=O+1:GOTO 2235
  188. 2228  IF K$="4" OR K=75 THEN O=O-8:GOTO 2235
  189. 2229  IF K$="6" OR K=77 THEN O=O+8:GOTO 2235
  190. 2230  IF K$<>CHR$(13) AND K$<>"+" THEN 2225
  191. 2233  GOTO 2250 ' color selected so continue
  192. 2235  REM check for range error
  193. 2236  IF O=-1 THEN O=7
  194. 2237  IF O=16 THEN O=8
  195. 2238  IF O<-1 THEN O=O+16
  196. 2239  IF O>16 THEN O=O-16
  197. 2240  LOCATE 19,6 : COLOR O,O: PRINT BAR$ :GOTO 2222
  198. 2250  C3=O
  199. 2318  LOCATE 19,13 : COLOR TEXT,BACKGROUND : PRINT "Background Color"
  200. 2319  O=HIGHLIGHT : LOCATE 21,13 : COLOR TEXT,HIGHLIGHT : PRINT "Highlight Color" : GOSUB 1950 : GOTO 2340
  201. 2320  REM select outline color
  202. 2321  GOSUB 1950 ' Display colorbars and names
  203. 2322  GOSUB 1975 ' Display highlighted option
  204. 2325  K$=INKEY$ : K = 0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  205. 2326  IF K$="8" OR K=72 THEN O=O-1:GOTO 2335
  206. 2327  IF K$="2" OR K=80 THEN O=O+1:GOTO 2335
  207. 2328  IF K$="4" OR K=75 THEN O=O-8:GOTO 2335
  208. 2329  IF K$="6" OR K=77 THEN O=O+8:GOTO 2335
  209. 2330  IF K$<>CHR$(13) AND K$<>"+" THEN 2325
  210. 2333  GOTO 2350 ' color selected so continue
  211. 2335  REM check for range error
  212. 2336  IF O=-1 THEN O=7
  213. 2337  IF O=16 THEN O=8
  214. 2338  IF O<-1 THEN O=O+16
  215. 2339  IF O>16 THEN O=O-16
  216. 2340  LOCATE 21,6 : COLOR O,O: PRINT BAR$ :GOTO 2322
  217. 2350  C4=O
  218. 2400  BORDER = C1 : TEXT = C2 : BACKGROUND = C3 : HIGHLIGHT = C4
  219. 2405  COLOR TEXT,BACKGROUND,BACKGROUND
  220. 2410  CLS : LOCATE 12,30 : PRINT "Saving Default Colors"
  221. 2420  OPEN "o",#1,"color.dat"
  222. 2430  WRITE #1,C1,C2,C3,C4
  223. 2440  CLOSE #1
  224. 2499  O = 2 : GOTO 900
  225. 3000  REM set modem parameters
  226. 3001  CLOSE
  227. 3005  COLOR TEXT,BACKGROUND,BACKGROUND
  228. 3006  GOSUB 1900 : GOSUB 1925 : GOSUB 1825
  229. 3007  COLOR TEXT,BACKGROUND,BACKGROUND
  230. 3010  LOCATE 15,8: PRINT"COM: Port       1   2   3   4"
  231. 3011  LOCATE 17,8: PRINT"Baud Rate         300  1200"
  232. 3012  LOCATE 19,8: PRINT"Dial Mode        Pulse  Tone"
  233. 3013  LOCATE 21,8: PRINT"Speaker            On  Off"
  234. 3015  LOCATE 13,56 : PRINT "Default Settings"
  235. 3016  LOCATE 15,63 : PRINT M1
  236. 3017  LOCATE 17,63 : IF M2 = 1 THEN PRINT "300" ELSE PRINT "1200"
  237. 3018  LOCATE 19,63 : IF M3 = 1 THEN PRINT "Pulse" ELSE PRINT "Tone"
  238. 3019  LOCATE 21,64 : IF M4 = 1 THEN PRINT "On" ELSE PRINT "Off"
  239. 3030  COLOR TEXT,HIGHLIGHT
  240. 3031  LOCATE 15,8:PRINT "COM: Port" : O = M1
  241. 3032  LOCATE 15,23 : COLOR TEXT,BACKGROUND : PRINT " 1   2   3   4 ": LOCATE 15,19+O*4 : COLOR TEXT,HIGHLIGHT : PRINT O
  242. 3033  K$=INKEY$: K=0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  243. 3034  IF K$="4" OR K = 75 THEN O=O-1: GOTO 3040
  244. 3035  IF K$="6" OR K = 77 THEN O=O+1: GOTO 3040
  245. 3036  IF K$<>CHR$(13) AND K$<>"+" THEN 3033
  246. 3037  GOTO 3045
  247. 3040  IF O < 1 THEN O = 4
  248. 3041  IF O > 4 THEN O = 1
  249. 3042  GOTO 3032
  250. 3045  COLOR TEXT,BACKGROUND : LOCATE 15,8 : PRINT "COM: Port       1   2   3   4 ": M1 = O : LOCATE 15,63 : PRINT M1
  251. 3050  COLOR TEXT,HIGHLIGHT : LOCATE 17,8 : PRINT "Baud Rate" : O = M2
  252. 3051  COLOR TEXT,BACKGROUND : LOCATE 17,26 : PRINT "300  1200" : COLOR TEXT,HIGHLIGHT : LOCATE 17,21+O*5 : IF O = 1 THEN PRINT "300" ELSE PRINT "1200"
  253. 3052  K$=INKEY$: K=0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  254. 3053  IF K$="4" OR K = 75 THEN O=O-1: GOTO 3057
  255. 3054  IF K$="6" OR K = 77 THEN O=O+1: GOTO 3057
  256. 3055  IF K$<>CHR$(13) AND K$<>"+" THEN 3052
  257. 3056  GOTO 3060
  258. 3057  IF O>2 THEN O = 1
  259. 3058  IF O<1 THEN O = 2
  260. 3059  GOTO 3051
  261. 3060  COLOR TEXT,BACKGROUND : LOCATE 17,8: PRINT "Baud Rate         300  1200" : LOCATE 17,63 : M2 = O : IF M2 = 1 THEN PRINT "300 " ELSE PRINT "1200"
  262. 3070  COLOR TEXT,HIGHLIGHT : LOCATE 19,8 : PRINT "Dial Mode" : O = M3
  263. 3071  COLOR TEXT,BACKGROUND : LOCATE 19,25 : PRINT "Pulse  Tone" : COLOR TEXT,HIGHLIGHT : LOCATE 19,18+O*7 : IF O = 1 THEN PRINT "Pulse" ELSE PRINT "Tone"
  264. 3072  K$=INKEY$: K=0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  265. 3073  IF K$="4" OR K = 75 THEN O=O-1: GOTO 3077
  266. 3074  IF K$="6" OR K = 77 THEN O=O+1: GOTO 3077
  267. 3075  IF K$<>CHR$(13) AND K$<>"+" THEN 3072
  268. 3076  GOTO 3080
  269. 3077  IF O>2 THEN O = 1
  270. 3078  IF O<1 THEN O = 2
  271. 3079  GOTO 3071
  272. 3080  COLOR TEXT,BACKGROUND : LOCATE 19,8: PRINT "Dial Mode        Pulse  Tone": LOCATE 19,63 : M3 = O : IF M3 = 1 THEN PRINT "Pulse" ELSE PRINT "Tone "
  273. 3090  COLOR TEXT,BACKGROUND : LOCATE 21,8: PRINT "Speaker            On  Off": LOCATE 21,64 : O = M4 : IF O = 1 THEN PRINT "On " ELSE PRINT "Off "
  274. 3091  COLOR TEXT,BACKGROUND : LOCATE 21,27 : PRINT "On  Off" : COLOR TEXT,HIGHLIGHT : LOCATE 21,23+O*4 : IF O = 1 THEN PRINT "On" ELSE PRINT "Off"
  275. 3092  K$=INKEY$: K=0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  276. 3093  IF K$="4" OR K = 75 THEN O=O-1: GOTO 3097
  277. 3094  IF K$="6" OR K = 77 THEN O=O+1: GOTO 3097
  278. 3095  IF K$<>CHR$(13) AND K$<>"+" THEN 3092
  279. 3096  GOTO 3100
  280. 3097  IF O>2 THEN O = 1
  281. 3098  IF O<1 THEN O = 2
  282. 3099  GOTO 3091
  283. 3100  COLOR TEXT,BACKGROUND : LOCATE 21,8: PRINT "Speaker            On  Off": LOCATE 21,64 : M4 = O : IF M4 = 1 THEN PRINT "On " ELSE PRINT "Off"
  284. 3150  COLOR TEXT,BACKGROUND,BACKGROUND : CLS : LOCATE 12,30 : PRINT "Saving Modem Setup"
  285. 3160  OPEN "o",#1,"modem.dat"
  286. 3170  WRITE #1,M1,M2,M3,M4
  287. 3180  CLOSE #1
  288. 3900  O = 3 : GOTO 900
  289. 4000  REM set dialing parameters
  290. 4001  CLOSE
  291. 4010  LOCATE 15,8 : PRINT "Exchange Code      ";D1$
  292. 4011  LOCATE 16,8 : PRINT "Area Code          ":LOCATE 16,66: PRINT D2$
  293. 4012  LOCATE 17,8 : PRINT "Starting Number    ":LOCATE 17,66: PRINT D3$
  294. 4013  LOCATE 18,8 : PRINT "Ending Number      ":LOCATE 18,66: PRINT D4$
  295. 4014  LOCATE 19,8 : PRINT "Time Between Calls ":LOCATE 19,66: PRINT D5$
  296. 4015  LOCATE 20,8 : PRINT "Wait for Carrier   ":LOCATE 20,66: PRINT D6$
  297. 4016  LOCATE 21,8 : PRINT "Dialing Mode       ":LOCATE 21,66: IF D5 = 1 THEN PRINT "Sequential"
  298. 4017  IF D5 = 2 THEN PRINT "Alternating"
  299. 4020  COLOR TEXT,HIGHLIGHT : LOCATE 15,8 : PRINT "Exchange Code" : O$=D1$ : COLOR TEXT,BACKGROUND : GOTO 4027
  300. 4021  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  301. 4022  IF K$=CHR$(13) OR K$="+"THEN 4030
  302. 4023  IF K$ = CHR$(8) OR K = 75 THEN 4028
  303. 4024  IF K = 0 THEN 4021
  304. 4025  IF LEN(O$) < 26 THEN O$=O$+LEFT$(K$,1) : GOTO 4027
  305. 4026  GOTO 4021
  306. 4027  LOCATE 15,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4021
  307. 4028  IF LEN(O$)<2 THEN O$ = "" : LOCATE 15,27 : PRINT "                                   " : LOCATE 15,27 : PRINT CHR$(219); :GOTO 4021
  308. 4029  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 15,27 : PRINT O$ CHR$(219) "  ": GOTO 4021
  309. 4030  D1$=O$ : COLOR TEXT,BACKGROUND : LOCATE 15,8 : PRINT "Exchange Code" : LOCATE 15,27 : PRINT D1$ " "
  310. 4040  COLOR TEXT,HIGHLIGHT : LOCATE 16,8 : PRINT "Area Code" : O$=D2$ : COLOR TEXT,BACKGROUND : GOTO 4047
  311. 4041  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  312. 4042  IF K$=CHR$(13) OR K$="+"THEN 4050
  313. 4043  IF K$ = CHR$(8) OR K = 75 THEN 4048
  314. 4044  IF K = 0 OR K$<"0" OR K$>"9" THEN 4041
  315. 4045  IF LEN(O$) < 3 THEN O$=O$+LEFT$(K$,1) : GOTO 4047
  316. 4046  GOTO 4041
  317. 4047  LOCATE 16,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4041
  318. 4048  IF LEN(O$)<2 THEN O$ = "" : LOCATE 16,27 : PRINT "                                   " : LOCATE 16,27: PRINT CHR$(219) : GOTO 4041
  319. 4049  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 16,27 : PRINT O$ CHR$(219) "  ": GOTO 4041
  320. 4050  D2$=O$ : COLOR TEXT,BACKGROUND : LOCATE 16,8 : PRINT "Area Code" : LOCATE 16,27 : PRINT D2$ " "  : LOCATE 16,66 : PRINT D2$ "   "
  321. 4060  COLOR TEXT,HIGHLIGHT : LOCATE 17,8 : PRINT "Starting Number" : O$=D3$ : COLOR TEXT,BACKGROUND : GOTO 4067
  322. 4061  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  323. 4062  IF (K$=CHR$(13) OR K$="+") AND LEN(O$)=7 THEN 4070
  324. 4063  IF K$ = CHR$(8) OR K = 75 THEN 4068
  325. 4064  IF K = 0 OR K$<"0" OR K$>"9" THEN 4061
  326. 4065  IF LEN(O$) < 7 THEN O$=O$+LEFT$(K$,1) : GOTO 4067
  327. 4066  GOTO 4061
  328. 4067  LOCATE 17,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4061
  329. 4068  IF LEN(O$)<2 THEN O$ = "" : LOCATE 17,27 : PRINT "                                   " : LOCATE 17,27 : PRINT CHR$(219) :GOTO 4061
  330. 4069  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 17,27 : PRINT O$ CHR$(219) "  ": GOTO 4061
  331. 4070  D3$=O$ : COLOR TEXT,BACKGROUND : LOCATE 17,8 : PRINT "Starting Number" : LOCATE 17,27 : PRINT D3$" "  : LOCATE 17,66 : PRINT D3$ "   "
  332. 4080  COLOR TEXT,HIGHLIGHT : LOCATE 18,8 : PRINT "Ending Number" : O$=D4$ : COLOR TEXT,BACKGROUND : GOTO 4087
  333. 4081  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  334. 4082  IF (K$=CHR$(13) OR K$="+") AND LEN(O$)=7 THEN 4090
  335. 4083  IF K$ = CHR$(8) OR K = 75 THEN 4088
  336. 4084  IF K = 0 OR K$<"0" OR K$>"9" THEN 4081
  337. 4085  IF LEN(O$) < 7 THEN O$=O$+LEFT$(K$,1) : GOTO 4087
  338. 4086  GOTO 4081
  339. 4087  LOCATE 18,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4081
  340. 4088  IF LEN(O$)<2 THEN O$ = "" : LOCATE 18,27 : PRINT "                                   " : LOCATE 18,27 : PRINT CHR$(219) :GOTO 4081
  341. 4089  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 18,27 : PRINT O$ CHR$(219) "  ": GOTO 4081
  342. 4090  D4$=O$ : COLOR TEXT,BACKGROUND : LOCATE 18,8 : PRINT "Ending Number" : LOCATE 18,27 : PRINT D4$" "  : LOCATE 18,66 : PRINT D4$ "   "
  343. 4100  COLOR TEXT,HIGHLIGHT : LOCATE 19,8 : PRINT "Time between calls" : O$=D5$ : COLOR TEXT,BACKGROUND : GOTO 4107
  344. 4101  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  345. 4102  IF (K$=CHR$(13) OR K$="+") THEN 4110
  346. 4103  IF K$ = CHR$(8) OR K = 75 THEN 4108
  347. 4104  IF K = 0 OR K$<"0" OR K$>"9" THEN 4101
  348. 4105  IF LEN(O$) < 3 THEN O$=O$+LEFT$(K$,1) : GOTO 4107
  349. 4106  GOTO 4101
  350. 4107  LOCATE 19,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4101
  351. 4108  IF LEN(O$)<2 THEN O$ = "" : LOCATE 19,27 : PRINT "                                   " : LOCATE 19,27 : PRINT CHR$(219) :GOTO 4101
  352. 4109  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 19,27 : PRINT O$ CHR$(219) "  ": GOTO 4101
  353. 4110  D5$=O$ : COLOR TEXT,BACKGROUND : LOCATE 19,8 : PRINT "Time between calls" : LOCATE 19,27 : PRINT D5$" "  : LOCATE 19,66 : PRINT D5$ "   "
  354. 4120  COLOR TEXT,HIGHLIGHT : LOCATE 20,8 : PRINT "Wait for carrier" : O$=D6$ : COLOR TEXT,BACKGROUND : GOTO 4127
  355. 4121  K$=INKEY$ : K = 1: IF LEN(K$)>1 THEN K = ASC(RIGHT$(K$,1))
  356. 4122  IF (K$=CHR$(13) OR K$="+") THEN 4130
  357. 4123  IF K$ = CHR$(8) OR K = 75 THEN 4128
  358. 4124  IF K = 0 OR K$<"0" OR K$>"9" THEN 4121
  359. 4125  IF LEN(O$) < 3 THEN O$=O$+LEFT$(K$,1) : GOTO 4127
  360. 4126  GOTO 4121
  361. 4127  LOCATE 20,27 : COLOR TEXT,BACKGROUND : PRINT O$ CHR$(219) : GOTO 4121
  362. 4128  IF LEN(O$)<2 THEN O$ = "" : LOCATE 20,27 : PRINT "                                   " : LOCATE 20,27 : PRINT CHR$(219) :GOTO 4121
  363. 4129  O$=LEFT$(O$,LEN(O$)-1) : LOCATE 20,27 : PRINT O$ CHR$(219) "  ": GOTO 4121
  364. 4130  D6$=O$ : COLOR TEXT,BACKGROUND : LOCATE 20,8 : PRINT "Wait for carrier" : LOCATE 20,27 : PRINT D6$" "  : LOCATE 20,66 : PRINT D6$ "   "
  365. 4140  COLOR TEXT,BACKGROUND : LOCATE 21,8: PRINT "Dialing Mode       Sequential Alternating" : O = D5
  366. 4141  COLOR TEXT,BACKGROUND : LOCATE 21,27 : PRINT "Sequential Alternating" : COLOR TEXT,HIGHLIGHT : LOCATE 21,16+O*11: IF O = 1 THEN PRINT "Sequential" ELSE PRINT "Alternating"
  367. 4142  K$=INKEY$: K=0 : IF LEN(K$)>1 THEN K=ASC(RIGHT$(K$,1))
  368. 4143  IF K$="4" OR K = 75 THEN O=O-1: GOTO 4147
  369. 4144  IF K$="6" OR K = 77 THEN O=O+1: GOTO 4147
  370. 4145  IF K$<>CHR$(13) AND K$<>"+" THEN 4142
  371. 4146  GOTO 4150
  372. 4147  IF O>2 THEN O = 1
  373. 4148  IF O<1 THEN O = 2
  374. 4149  GOTO 4141
  375. 4150  COLOR TEXT,BACKGROUND : LOCATE 21,8: PRINT "Dialing Mode       Sequential Alternating": LOCATE 21,66 : D5 = O : IF D5 = 1 THEN PRINT "Sequential " ELSE PRINT "Alternating"
  376. 4190  O = 4
  377. 4200  COLOR TEXT,BACKGROUND,BACKGROUND : CLS : LOCATE 12,30 : PRINT "Saving Dialing Parameters"
  378. 4210  OPEN "o",#2,"dialing.dat"
  379. 4220  WRITE #2,D1$,D2$,D3$,D4$,D5$,D6$,D5
  380. 4230  CLOSE
  381. 4240  GOTO 900
  382. 5000  REM begin dialing
  383. 5001  CLOSE
  384. 5002  GOSUB 6000
  385. 5005  STATUS$="Resetting Modem"
  386. 5009  INIT = 0
  387. 5010  LOCATE 5,LEFT+3 : PRINT DATE$ : LOCATE 6,LEFT+4 : PRINT TIME$
  388. 5012  LOCATE 2,LEFT+35: PRINT "Start    "D3$ : LOCATE 3,LEFT+35 : PRINT "End      "D4$
  389. 5013  LOCATE 5,LEFT+35 : PRINT "Current  "
  390. 5014  LOCATE 2,LEFT+14 : PRINT "Exchange" : LOCATE 3,LEFT+18-(LEN(D1$)/2) : PRINT D1$
  391. 5015  LOCATE 8,LEFT+3: PRINT"COM:   ";M1
  392. 5016  LOCATE 9,LEFT+3: PRINT"Baud    ";:IF M2 = 1 THEN PRINT"300 " ELSE PRINT "1200"
  393. 5017  LOCATE 10,LEFT+3:PRINT"Dial    ";:IF M3 = 1 THEN PRINT"Pulse" ELSE PRINT "Tone "
  394. 5018  LOCATE 11,LEFT+3:PRINT"Speaker ";:IF M4=1 THEN PRINT"On " ELSE PRINT"off"
  395. 5020  IF D2$<>"" THEN LOCATE 5,LEFT+16: PRINT"Area Code ("D2$")"
  396. 5021  LOCATE 7,LEFT+25 : PRINT "Mode   ";:IF D5=1 THEN PRINT "Sequential " ELSE PRINT"Alternating"
  397. 5022  LOCATE 8,LEFT+25 : PRINT "Time to call     "
  398. 5023  LOCATE 9,LEFT+25 : PRINT "Wait for Carrier "
  399. 5024  LOCATE 11,LEFT+20: PRINT "Status "
  400. 5050  LOCATE 11,LEFT+32 : COLOR TEXT,HIGHLIGHT : PRINT "Resetting Modem" : CLOSE 1 : FOR I = 1 TO 3000 : NEXT I
  401. 5055  COLOR TEXT,BACKGROUND : LOCATE 11, LEFT + 32 : PRINT "               "
  402. 5056  REM set up d$ for dialing  - speaker on/off
  403. 5057  IF M4=2 THEN D$="AT M0 " ELSE D$="AT M1"
  404. 5060  REM set up d$ for dialing  - pulse/tone
  405. 5061  IF M3=1 THEN D$=D$+"DP" ELSE D$=D$+"DT"
  406. 5098  CLOSE
  407. 5099  LIN = 0 : CFOUND = 1
  408. 5100  CURRENT = VAL(D1$)
  409. 5110  LOCATE 11,LEFT+32 :COLOR TEXT,HIGHLIGHT : PRINT"Opening COM: Port "
  410. 5120  A$="COM"+MID$(STR$(M1),2,1)+":":IF M2=1 THEN A$=A$+"300" ELSE A$=A$+"1200"
  411. 5121  ' A$=A$+",n,8,1,cs,ds"
  412. 5122  NUMBER = VAL(D3$) : INIT = 1
  413. 5123  OPEN A$ AS #1 : LOCATE 11,LEFT+32: COLOR TEXT,BACKGROUND : PRINT "                    "
  414. 5124  LOCATE 5,LEFT+43 : COLOR TEXT,HIGHLIGHT : PRINT NUMBER : LOCATE 11,LEFT+27:COLOR TEXT,BACKGROUND : PRINT"                          "
  415. 5125  IF D1$="" THEN 5135
  416. 5126  LOCATE 11,LEFT+32 :COLOR TEXT,HIGHLIGHT : PRINT" Dialing Exchange "
  417. 5130  PRINT #1,D$+D1$
  418. 5132  FOR I = 1 TO LEN(D1$) : LOCATE 3,LEFT+17-(LEN(D1$)/2)+I : COLOR TEXT,HIGHLIGHT : PRINT MID$(D1$,I,1) : FOR J = 1 TO 50 : NEXT J
  419. 5133  LOCATE 3,LEFT+17-(LEN(D1$)/2)+I : COLOR TEXT,BACKGROUND : PRINT MID$(D1$,I,1) : NEXT I
  420. 5135  COLOR TEXT,HIGHLIGHT : LOCATE 5,LEFT+43 : PRINT        : COLOR TEXT,BACKGROUND : LOCATE 5,LEFT+42 : PRINT " "
  421. 5136  LOCATE 11,LEFT+32 : PRINT "                   " : COLOR TEXT,HIGHLIGHT : LOCATE 11,LEFT+32 : PRINT " Dialing ... ": PRINT #1,D$;D2$;NUMBER
  422. 5139  FOR I = 1 TO 2500:NEXT
  423. 5140  LOCATE 11,LEFT+27 : PRINT " Waiting for Carrier... " : TRY.TIME = VAL(D6$)
  424. 5150  TRY.TIME = VAL(D6$) : COLOR TEXT,HIGHLIGHT
  425. 5155  START.TIME = TIMER
  426. 5160  TI = INT(START.TIME-TIMER)+TRY.TIME
  427. 5161  GOSUB 850
  428. 5162  IF TI<0 THEN 5175
  429. 5165  LOCATE 9,LEFT+44 : COLOR TEXT,HIGHLIGHT :PRINT TI;: COLOR TEXT,BACKGROUND : PRINT " "
  430. 5170  IF LOC(1)>20 THEN 5200
  431. 5171  K$=INKEY$ : IF K$<>"" THEN 5300
  432. 5174  GOTO 5160
  433. 5175  GOSUB 5350
  434. 5176  LOCATE 9,LEFT+44: COLOR TEXT,BACKGROUND : PRINT "   ":
  435. 5178  IF NUMBER = VAL(D4$) THEN 5190
  436. 5179  NUMBER = NUMBER + 1
  437. 5181  IF VAL(D5$)<1 THEN 5186
  438. 5182  RANDOMIZE TIMER : TRY.TIME = VAL(D5$) * RND(1) : TRY.TIME = INT(TRY.TIME)+1:START.TIME = TIMER
  439. 5183  GOSUB 850 : TI = TRY.TIME - (TIMER - START.TIME) :TI=INT(TI+0.5) : K$=INKEY$ : IF K$<>"" THEN 5300
  440. 5184  LOCATE 8,71 :IF TI<0 THEN 5185 ELSE COLOR TEXT,HIGHLIGHT : PRINT TI;:COLOR TEXT,BACKGROUND : PRINT " " : GOTO 5183
  441. 5185  COLOR TEXT,BACKGROUND : LOCATE 8,71 : PRINT "   ":
  442. 5186  GOSUB 6100: REM CHECK IF TIME TO QUIT
  443. 5189  GOTO 5123
  444. 5190  GOTO 5335
  445. 5200  REM computer found
  446. 5201  LOCATE 7,LEFT+44 : COLOR TEXT,HIGHLIGHT : PRINT CFOUND
  447. 5205  OPEN "numbers.dat" FOR APPEND AS 3
  448. 5206  PRINT #3,NUMBER"  "TIME$
  449. 5207  CLOSE 3
  450. 5208  CFOUND = CFOUND + 1
  451. 5210  LIN = LIN + 1
  452. 5211  IF LIN = 31 THEN LIN = 1 : GOSUB 1900
  453. 5215  VP = LIN : XP=0
  454. 5216  IF VP>10 THEN VP=VP-10: XP = XP+1 : GOTO 5216
  455. 5220  LOCATE 12+VP,XP*24 + 8
  456. 5225  COLOR TEXT,BACKGROUND : PRINT NUMBER " " TIME$
  457. 5250  GOTO 5175
  458. 5300  REM key was pressed
  459. 5310  IF K$=CHR$(27) THEN 5335
  460. 5311  IF K$=CHR$(13) THEN SCREEN 0,,0,3 : CLOSE 1 : GOTO 5186
  461. 5312  IF K$=" " THEN 5175
  462. 5313  IF K$=CHR$(4) THEN SCREEN 0,0,0,0 : CLOSE 1 : GOTO 5186
  463. 5315  CLOSE 1
  464. 5320  SCREEN 0,,3 : COLOR 0,0,0 : CLS
  465. 5325  K$=INKEY$ : IF K$="" THEN 5325
  466. 5330  SCREEN 0,0,0 : GOTO 5186
  467. 5335  REM save dialing parameters
  468. 5338  D3$=STR$(NUMBER)
  469. 5339  IF LEFT$(D3$,1)=" " THEN D3$=RIGHT$(D3$,LEN(D3$)-1) : GOTO 5339
  470. 5340  IF RIGHT$(D3$,1)=" " THEN D3$=LEFT$(D3$,LEN(D3$)-1) : GOTO 5340
  471. 5345  O = 1 : GOTO 4200
  472. 5350  REM hang up modem
  473. 5353  COLOR TEXT,BACKGROUND : LOCATE 11,LEFT+27: PRINT "                      "
  474. 5354  LOCATE 9,LEFT+44 : PRINT "      "
  475. 5355  COLOR TEXT,HIGHLIGHT : LOCATE 11,LEFT+32 : PRINT " Hanging up... ";
  476. 5356  COLOR TEXT,BACKGROUND : PRINT "     "
  477. 5360  PRINT #1,"+++" : FOR I = TIMER TO TIMER+3:I=TIMER: GOSUB 850 : NEXT I: PRINT #1,"ATH" : CLOSE 1
  478. 5364  COLOR TEXT,BACKGROUND : LOCATE 11,LEFT+32: PRINT "               "
  479. 5366  RETURN
  480. 5499  STOP
  481. 5500  REM error routine for modem
  482. 5505  IF ERR = 24 THEN RESUME 5126
  483. 5510  PRINT ERR
  484. 5520  RESUME 5126
  485. 5590  COLOR 15,0 : CLS
  486. 5599  RESUME 5600
  487. 5600  ON ERROR GOTO 0
  488. 6000  REM WAIT FOR STARTING TIME
  489. 6010  IF TIME$<START$ THEN 6010
  490. 6020  RETURN
  491. 6100  'CHECK IF TIME TO STOP
  492. 6105  IF S1$="" THEN RETURN
  493. 6106  IF DATE$="06-13-1986" THEN RETURN
  494. 6110  IF TIME$<S1$ THEN RETURN
  495. 6140  GOTO 5335
  496. 7000  REM set time
  497. 7010  LOCATE 5,LEFT+5 : PRINT "Time :  ";TIME$
  498. 7011  LOCATE 6,LEFT+5 : PRINT "Date : ";DATE$
  499. 7012  LOCATE 5,LEFT+25: INPUT "";T1$
  500. 7013  LOCATE 6,LEFT+25: INPUT "";DD$
  501. 7015  ON ERROR GOTO 7100
  502. 7016  IF T1$<>"" THEN TIME$=T1$
  503. 7018  ON ERROR GOTO 7110
  504. 7019  IF DD$<>"" THEN DATE$=DD$
  505. 7020  ON ERROR GOTO 0
  506. 7025  LOCATE 10,LEFT+10:INPUT "Start time : ";START$
  507. 7026  LOCATE 11,LEFT+10:INPUT "Stop  time : ";S1$
  508. 7027  IF START$="" THEN START$=TIME$
  509. 7050  OPEN "o",1,"alarm.dat"
  510. 7055  PRINT #1,START$ : PRINT#1,S1$
  511. 7060  CLOSE 1
  512. 7099  O = 1 : GOTO 900
  513. 7100  RESUME 7012
  514. 7110  RESUME 7013
  515. 8000  OPEN "i",3,"numbers.dat"
  516. 8010  INPUT #3,T$
  517. 8020  PRINT T$
  518. 8030  GOTO 8010
  519.